package BasicDataType;

import com.sun.xml.internal.bind.v2.runtime.output.SAXOutput;

public class Demo6VariableNotice {
    public static void main(String[] args) {
        /*
        使用变量的时候，有一些注意事项：

        1、如果创建多个变量，那么变量之间的名称不可以重复
        2、对于浮点型 float、double 类型来说，字母后缀L F不要丢
        3、如果使用 byte 或者 short 类型的变量，那么右侧的数据值不能超过左侧类型的范围
        4、没有进行赋值的变量，不能直接使用，一定要赋值之后，才能使用
        5、变量使用不能超过作用域的范围
        【作用域】：从定义变量的一行开始，一直到直接所属的大括号结束为止
        */

        /*int num;
        System.out.println(num);
        上面的代码会直接提示报错，因为没有被赋值的变量不能直接使用
        */

        /*System.out.println(num1);
        int num1=1;
        变量要先定义后使用，不然找不到变量
        */
        int x=1,y=2,z=3;
        System.out.println(x);
        System.out.println(y);
        System.out.println(z);

        /*
        当数据类型不一样时，将会发生数据类型转换

        自动类型转换（隐式）
        1、特点：代码不需要进行特殊处理，自动完成
        2、规则：数据范围从小到大

        强制类型转换（显式）：
        1、特点：代码需要进行特殊的格式处理，不能自动完成
        2、格式：范围小的类型 范围小的变量名 = (范围小的类型)原本范围大数据
        注意事项：
        1、强制类型转换一般不推荐使用，因为有可能发生精度损失、数据溢出
        2、byte\short\char 这三种类型都可以发生数学运算，如加法“+”
        3、byte\short\char 这三种类型在运算的时候，都会被首先提升成为int类型再计算
        4、boolean 不能发生数据类型转换
        */
        System.out.println(1024);//这是整数，默认是int类型
        System.out.println(3.14);//这是浮点数，默认是double类型

        /*
        下面100是整数类型，而long是长整型，左右的数据类型不一致
        = 代表赋值，将右侧的int常量，交给左侧的long变量进行存储
        符合数据范围从小到大的要求，自动发生隐式转换
        */
        long num = 100;
        System.out.println(num);

        double num2=2.5F;
        System.out.println(num2);

        float num3 = 30;
        System.out.println(num3);

        int num4 = (int) 31.66; //精度损失，所有的小数位直接被舍弃，而不是四舍五入
        System.out.println(num4);

        int num5 = (int)6000000000L;
        System.out.println(num5);

        //字符类型转换成 Ascll 值
        char zifu1 = 'A';
        System.out.println(zifu1+1);

        byte num7 = 40;
        byte num6 = 50;

        /*byte num9 = (byte)(num6+num7);
        System.out.println(num9);
        */
        int num8=num6+num7;
        System.out.println(num8);

        char zifu3='1';
        System.out.println();
    }
}
